That way we can get Eq and Hash.
[[object]]
name = "OSTree.CollectionRef"
-status = "generate"
+status = "manual"
+ [[object.function]]
+ # helper functions for NULL-terminated arrays
+ pattern = "dupv|freev"
+ ignore = true
+
[[object.function]]
- pattern = "dupv|equal|freev|hash"
+ # we get this for free?
+ name = "dup"
ignore = true
[[object]]
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
- <parameter name="ref1"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
+ <parameter name="ref1" transfer-ownership="none">
<doc xml:space="preserve">an #OstreeCollectionRef</doc>
<type name="gpointer" c:type="gconstpointer"/>
</parameter>
- <parameter name="ref2"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
+ <parameter name="ref2" transfer-ownership="none">
<doc xml:space="preserve">another #OstreeCollectionRef</doc>
<type name="gpointer" c:type="gconstpointer"/>
</parameter>
<type name="guint" c:type="guint"/>
</return-value>
<parameters>
- <parameter name="ref"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
+ <parameter name="ref" transfer-ownership="none">
<doc xml:space="preserve">an #OstreeCollectionRef</doc>
<type name="gpointer" c:type="gconstpointer"/>
</parameter>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
- <parameter name="ref1"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
+ <parameter name="ref1" transfer-ownership="none">
<doc xml:space="preserve">an #OstreeCollectionRef</doc>
<type name="gpointer" c:type="gconstpointer"/>
</parameter>
- <parameter name="ref2"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
+ <parameter name="ref2" transfer-ownership="none">
<doc xml:space="preserve">another #OstreeCollectionRef</doc>
<type name="gpointer" c:type="gconstpointer"/>
</parameter>
<type name="guint" c:type="guint"/>
</return-value>
<parameters>
- <parameter name="ref"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
+ <parameter name="ref" transfer-ownership="none">
<doc xml:space="preserve">an #OstreeCollectionRef</doc>
<type name="gpointer" c:type="gconstpointer"/>
</parameter>
+++ /dev/null
-// This file was generated by gir (https://github.com/gtk-rs/gir)
-// from gir-files (https://github.com/gtk-rs/gir-files)
-// DO NOT EDIT
-
-use ffi;
-use glib::translate::*;
-use glib_ffi;
-use gobject_ffi;
-use std::mem;
-use std::ptr;
-
-glib_wrapper! {
- #[derive(Debug, PartialEq, Eq, PartialOrd, Ord, Hash)]
- pub struct CollectionRef(Boxed<ffi::OstreeCollectionRef>);
-
- match fn {
- copy => |ptr| gobject_ffi::g_boxed_copy(ffi::ostree_collection_ref_get_type(), ptr as *mut _) as *mut ffi::OstreeCollectionRef,
- free => |ptr| gobject_ffi::g_boxed_free(ffi::ostree_collection_ref_get_type(), ptr as *mut _),
- get_type => || ffi::ostree_collection_ref_get_type(),
- }
-}
-
-impl CollectionRef {
- #[cfg(any(feature = "v2018_6", feature = "dox"))]
- pub fn new<'a, P: Into<Option<&'a str>>>(collection_id: P, ref_name: &str) -> CollectionRef {
- let collection_id = collection_id.into();
- let collection_id = collection_id.to_glib_none();
- unsafe {
- from_glib_full(ffi::ostree_collection_ref_new(collection_id.0, ref_name.to_glib_none().0))
- }
- }
-
- #[cfg(any(feature = "v2018_6", feature = "dox"))]
- pub fn dup(&self) -> Option<CollectionRef> {
- unsafe {
- from_glib_full(ffi::ostree_collection_ref_dup(self.to_glib_none().0))
- }
- }
-}
pub use self::se_policy::SePolicy;
pub use self::se_policy::SePolicyExt;
-#[cfg(any(feature = "v2018_6", feature = "dox"))]
-mod collection_ref;
-#[cfg(any(feature = "v2018_6", feature = "dox"))]
-pub use self::collection_ref::CollectionRef;
-
#[cfg(any(feature = "v2018_6", feature = "dox"))]
mod remote;
#[cfg(any(feature = "v2018_6", feature = "dox"))]
--- /dev/null
+// Based on a file generated by gir. Changes are marked below.
+use ffi;
+use glib::translate::*;
+use glib_ffi;
+use gobject_ffi;
+use std::hash;
+use std::mem;
+use std::ptr;
+
+glib_wrapper! {
+ #[derive(Debug, PartialOrd, Ord)]
+ pub struct CollectionRef(Boxed<ffi::OstreeCollectionRef>);
+
+ match fn {
+ copy => |ptr| gobject_ffi::g_boxed_copy(ffi::ostree_collection_ref_get_type(), ptr as *mut _) as *mut ffi::OstreeCollectionRef,
+ free => |ptr| gobject_ffi::g_boxed_free(ffi::ostree_collection_ref_get_type(), ptr as *mut _),
+ get_type => || ffi::ostree_collection_ref_get_type(),
+ }
+}
+
+impl CollectionRef {
+ #[cfg(any(feature = "v2018_6", feature = "dox"))]
+ pub fn new<'a, P: Into<Option<&'a str>>>(collection_id: P, ref_name: &str) -> CollectionRef {
+ let collection_id = collection_id.into();
+ let collection_id = collection_id.to_glib_none();
+ unsafe {
+ from_glib_full(ffi::ostree_collection_ref_new(collection_id.0, ref_name.to_glib_none().0))
+ }
+ }
+
+ #[cfg(any(feature = "v2018_6", feature = "dox"))]
+ fn equal(&self, ref2: &CollectionRef) -> bool {
+ unsafe {
+ // CHANGE: both instances of *mut to *const
+ from_glib(ffi::ostree_collection_ref_equal(ToGlibPtr::<*const ffi::OstreeCollectionRef>::to_glib_none(self).0 as glib_ffi::gconstpointer, ToGlibPtr::<*const ffi::OstreeCollectionRef>::to_glib_none(ref2).0 as glib_ffi::gconstpointer))
+ }
+ }
+
+ #[cfg(any(feature = "v2018_6", feature = "dox"))]
+ fn hash(&self) -> u32 {
+ unsafe {
+ // CHANGE: *mut to *const
+ ffi::ostree_collection_ref_hash(ToGlibPtr::<*const ffi::OstreeCollectionRef>::to_glib_none(self).0 as glib_ffi::gconstpointer)
+ }
+ }
+}
+
+impl PartialEq for CollectionRef {
+ #[inline]
+ fn eq(&self, other: &Self) -> bool {
+ self.equal(other)
+ }
+}
+
+impl Eq for CollectionRef {}
+
+impl hash::Hash for CollectionRef {
+ #[inline]
+ fn hash<H>(&self, state: &mut H) where H: hash::Hasher {
+ hash::Hash::hash(&self.hash(), state)
+ }
+}
use glib::Error;
// re-exports
-#[cfg_attr(feature = "cargo-clippy", allow(clippy))]
mod auto;
-pub use auto::functions::*;
-pub use auto::*;
+pub use crate::auto::functions::*;
+pub use crate::auto::*;
mod repo;
+#[cfg(any(feature = "v2018_6", feature = "dox"))]
+mod collection_ref;
+#[cfg(any(feature = "v2018_6", feature = "dox"))]
+pub use crate::collection_ref::CollectionRef;
+
mod object_name;
-pub use object_name::ObjectName;
+pub use crate::object_name::ObjectName;
// public modules
pub mod prelude {
- pub use auto::traits::*;
- pub use repo::RepoExtManual;
+ pub use crate::auto::traits::*;
+ pub use crate::repo::RepoExtManual;
}